package tests;

import java.awt.Point;

import aplicacion.modelo.Celda;
import aplicacion.modelo.CeldasEnjauladas;
import junit.framework.Assert;
import junit.framework.TestCase;

public class CeldasEnjauladasTest extends TestCase {
	
	public void testAgregar(){
		Point posicion=new Point(0,0);
		Celda celda=new Celda(posicion);
		CeldasEnjauladas celdasEnjauladas=new CeldasEnjauladas();
		celdasEnjauladas.add(celda);
		Assert.assertEquals(celdasEnjauladas.size(), 1);
	}
	
	public void testVacia(){
		CeldasEnjauladas celdasEnjauladas=new CeldasEnjauladas();
		Assert.assertEquals(celdasEnjauladas.size(), 0);
	}
	
	public void testObtenerDeVacia(){
		CeldasEnjauladas celdasEnjauladas=new CeldasEnjauladas();
		try{
			celdasEnjauladas.get(0);
		}catch(Exception e){Assert.assertTrue(true);};
		Assert.assertEquals(0, celdasEnjauladas.size());
	}
	
	public void testObtenerCelda(){
		Point posicion=new Point(0,0);
		Celda celda=new Celda(posicion);
		CeldasEnjauladas celdasEnjauladas=new CeldasEnjauladas();
		celdasEnjauladas.add(celda);
		Assert.assertEquals(celda,celdasEnjauladas.get(0));
	}
	
	public void testSiEstaEnjaulada(){
		Point posicion=new Point(0,0);
		Celda celda=new Celda(posicion);
		CeldasEnjauladas celdasEnjauladas=new CeldasEnjauladas();
		celdasEnjauladas.add(celda);
		Assert.assertTrue(celdasEnjauladas.estaEnjaulada(celda));
	}
	
	public void testSiNoEstaEnjaulada(){
		Point posicion=new Point(0,0);
		Celda celda=new Celda(posicion);
		CeldasEnjauladas celdasEnjauladas=new CeldasEnjauladas();
		Assert.assertTrue(!celdasEnjauladas.estaEnjaulada(celda));
	}
	
	private void cargarCeldasEnjauladas(CeldasEnjauladas celdasEnjauladas){
		for(int i=0;i<6;i++){
			Point posicion=new Point(i,0);
			Celda celda=new Celda(posicion);
			celdasEnjauladas.add(celda);
		}
	}
	
	public void testIterador(){
		int contador=0;
		CeldasEnjauladas celdasEnjauladas=new CeldasEnjauladas();
		cargarCeldasEnjauladas(celdasEnjauladas);
		java.util.Iterator<Celda> iterador=celdasEnjauladas.iterator();
		while(iterador.hasNext()){
			contador++;
			iterador.next();	
		}
		Assert.assertTrue(celdasEnjauladas.size()==contador);
	}
}
